package com.cms.recursoshumanos.activity.pantallas_principal;

import java.util.Date;

import com.cms.recursoshumanos.activity.catalogo.ListaTipoArticuloActivity;
import com.cms.recursoshumanos.activity.catalogo.carrito.CarritoCompraActivity;
import com.cms.recursoshumanos.activity.catalogo.solicitud_compra.ListaSolicitudCompraActivity;
import com.cms.recursoshumanos.activity.main.MainRecursosHumanosActivity;
import com.cms.recursoshumanos.cache.UserInfoCache;
import com.cms.recursoshumanos.component.dialog.CustomDatePickerMonthYearDialog;
import com.cms.recursoshumanos.component.dialog.CustomDatePickerMonthYearDialog.DateDialogListener;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.handler.ListaSolicitudCompraActivityHandler;
import com.cms.recursoshumanos.handler.ListaTipoArticuloActivityHandler;
import com.cms.recursoshumanos.object.Usuario;
import com.cms.recursoshumanos.utilities.Tool;
import com.example.frontendrecursoshumanos.R;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.ProgressDialog;
import android.content.Intent;
import android.view.View;

public class PrincipalTiendaMenuActivity extends MainRecursosHumanosActivity 
{

	protected static TipoArticuloAsync tipoArticuloAsyncTask;
	protected static ListaSolicitudCompraAsync listadoSolicitudCompraAsyncTask;
	
	private ProgressDialog dialog;
	private Usuario elUsuario;
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_menu_tienda_principal);
		elUsuario = UserInfoCache.getInstance().getUsuario();
	}
	@Override
	protected void onResume() 
	{
		super.onResume();
		if (elUsuario == null)
		{
			elUsuario = UserInfoCache.getInstance().getUsuario();
		}
		
	}
	
	public void showSolicitudCompra(View v)
    {
		
		CustomDatePickerMonthYearDialog.DateDialogListener date = new DateDialogListener() 
		{
			
			@Override
			public void ready(Date fecha_selec) 
			{
				findShowSolicitudComprar(fecha_selec);
			}
			
			@Override
			public void cancelled() 
			{
				
			}
		};
		CustomDatePickerMonthYearDialog datedialog = new 
						CustomDatePickerMonthYearDialog(PrincipalTiendaMenuActivity.this, date);
		datedialog.show();
		
		
		
	}
	public void showTipoArticulo(View v)
    {
		findInfoTipoArticulo();
	}
	public void showCarrito(View v)
    {
		goCarrito();
	}
	public void goCarrito()
	{
		Intent intent = new Intent(PrincipalTiendaMenuActivity.this, CarritoCompraActivity.class);
		startActivity(intent);
	}
	public void goTipoArticulo()
	{
		Intent intent = new Intent(PrincipalTiendaMenuActivity.this, ListaTipoArticuloActivity.class);
		startActivity(intent);
	}
	public void goListaSolicitudCompra()
	{
		Intent intent = new Intent(PrincipalTiendaMenuActivity.this, ListaSolicitudCompraActivity.class);
		startActivity(intent);
	}
	
	protected void findShowSolicitudComprar(Date fecha_selec)
	{
		listadoSolicitudCompraAsyncTask = new ListaSolicitudCompraAsync(elUsuario,fecha_selec);
		listadoSolicitudCompraAsyncTask.execute();
	}
	protected void findInfoTipoArticulo()
	{
		tipoArticuloAsyncTask = new TipoArticuloAsync(elUsuario);
		tipoArticuloAsyncTask.execute();
	}
	
	private class ListaSolicitudCompraAsync extends AsyncTask<String, Void, String>
	{
		private Usuario elUsuario;
		private Date fecha_selec;
		
		public ListaSolicitudCompraAsync(Usuario elUsuario, Date fecha_selec)
		{
			this.elUsuario = elUsuario;
			this.fecha_selec = fecha_selec;
		}
		
		@SuppressWarnings("deprecation")
		@Override
		protected void onPreExecute()
		{
			showDialog(0);
			dialog = ProgressDialog.show(PrincipalTiendaMenuActivity.this, "Espere","Cargando...",true );
		}
	
		@Override
		protected String doInBackground(String... arg0) 
		{
			ListaSolicitudCompraActivityHandler handler = new ListaSolicitudCompraActivityHandler();
			String result = handler.getListadoReservaciones(this.elUsuario.getNombre_Usuario(), 
																this.elUsuario.getPassword(),
																this.fecha_selec);
			return result;
		}
		
		@Override
		public void onPostExecute(String  result)
		{
			
			String str_result = result;
			
			if (str_result.equals(Constant.CODE_OK))
			{ 
				goListaSolicitudCompra();
			}
			else 
			{
				Tool.getInstance().showMessage( str_result);
			}
			dialog.cancel();
			this.cancel(true);
			
		}
		
	}
	
	private class TipoArticuloAsync extends AsyncTask<String, Void, String>
	{
		private Usuario elUsuario;
		
		public TipoArticuloAsync(Usuario elUsuario)
		{
			this.elUsuario = elUsuario;
		}
		
		@SuppressWarnings("deprecation")
		@Override
		protected void onPreExecute()
		{
			showDialog(0);
			dialog = ProgressDialog.show(PrincipalTiendaMenuActivity.this, "Espere","Cargando...",true );
		}
	
		@Override
		protected String doInBackground(String... arg0) 
		{
			ListaTipoArticuloActivityHandler handler = new ListaTipoArticuloActivityHandler();
			String result = handler.getListadoTipoArticulo(this.elUsuario.getNombre_Usuario(),
															this.elUsuario.getPassword());
			return result;
		}
		
		@Override
		public void onPostExecute(String  result)
		{
			
			String str_result = result;
			
			if (str_result.equals(Constant.CODE_OK))
			{ 
				goTipoArticulo();
			}
			else 
			{
				Tool.getInstance().showMessage( str_result);
			}
			dialog.cancel();
			this.cancel(true);
			
		}
		
	}

}
